package Negocio;

import java.util.*;

public class Orden {
	
	public Datos.Orden oDatos;

	/**
	 * Agrega una Orden a la base de datos;
	 * @param item
	 * @return
	 * @throws Exception
	 */
	public int Add(Entidades.Orden item) throws Exception{
		Datos.Orden oDatos;
		try{
			oDatos = new Datos.Orden();
			return oDatos.Add(item);
		}finally {
			oDatos = null;
		}
	}
	/**
	 * Actualiza una Orden a la base de datos;
	 * @param item
	 * @throws Exception
	 */
	public void Update(Entidades.Orden item) throws Exception{
		Datos.Orden oDatos;
		try{
			oDatos = new Datos.Orden();
			oDatos.Update(item);
		}finally {
			oDatos = null;
		}
	}
	/**
	 * Elimina una Orden de la base de datos;
	 * @param id
	 * @throws Exception
	 */
	public void Delete(String id) throws Exception{
		Datos.Orden oDatos;
		try{
			oDatos = new Datos.Orden();
			oDatos.Delete(id);
		}finally {
			oDatos = null;
		}
	}
	/**
	 * Obtiene una Orden en base a un id;
	 * @param id
	 * @return
	 * @throws Exception
	 */
	public List GetOne(String id) throws Exception{
		Datos.Orden oDatos;
		try{
			oDatos = new Datos.Orden();
			return oDatos.GetOne(id);
		}finally {
			oDatos = null;
		}
	}
	/**
	 * Retorna todos las Ordenes de la base de Datos;
	 * @return
	 * @throws Exception
	 */
	public List GetAll() throws  Exception{
		Datos.Orden oDatos;
		try{
			oDatos = new Datos.Orden();
			return oDatos.GetAll();
		}finally {
			oDatos = null;
		}
	}
	/**
	 * Obtiene una lista de Ordenes en base a una consulta;
	 * @param id
	 * @return
	 * @throws Exception
	 */
	public List Consulta(String id) throws Exception{
		Datos.Orden oDatos;
		try{
			oDatos = new Datos.Orden();
			return oDatos.Consulta(id);
		}finally {
			oDatos = null;
		}
	}
	/**
	 * Abre el canal para el movimiento dentro de la tabla;
	 * @throws Exception
	 */
	public void Abrir() throws Exception{
			oDatos = new Datos.Orden();
			oDatos.Abrir();
	}
	/**
	 * Cierra el canal para el movimiento dentro de la tabla;
	 * @throws Exception
	 */
	public void Cerrar() throws Exception{
			oDatos.Cerrar();
			return;
	}
	/**
	 * Obtiene el Primer registro de la tabla Orden;
	 * @return
	 * @throws Exception
	 */
	public List Primero() throws Exception{
			return oDatos.Primero();
	}
	/**
	 * Obtiene el Siguiente registro de la tabla Orden;
	 * @return
	 * @throws Exception
	 */
	public List Siguiente() throws Exception{
			return oDatos.Siguiente();
	}
	/**
	 * Obtiene el Anterior registro de la tabla Orden;
	 * @return
	 * @throws Exception
	 */
	public List Anterior() throws Exception{
			return oDatos.Anterior();
	}
	/**
	 * Obtiene el Ultimo registro de la tabla Orden;
	 * @return
	 * @throws Exception
	 */
	public List Ultimo() throws Exception{
			return oDatos.Ultimo();
	}
	/**
	 * Arma una Lista con todos los CPDs disponibles del Orden
	 * @param unComi
	 * @return
	 * @throws Exception 
	 * @throws Exception
	 */
	/*
	public float GetMontoOrden(Entidades.Orden orden) throws Exception{
		float monto=0;
		if (orden.getClass().getName()=="Entidades.OrdenVenta"){
			Entidades.OrdenVenta oDatos = (Entidades.OrdenVenta) orden;
			List aDatos = oDatos.getDetalleOrdenVenta();
			Entidades.DetalleOrdenVenta eDetalleOrdenVenta = null;
			int i=0;
			if (aDatos!=null){
				while(aDatos.size()!=i){
					eDetalleOrdenVenta = (Entidades.DetalleOrdenVenta) aDatos.get(i);
					monto = monto + new Negocio.DetalleOrdenVenta().GetMonto(eDetalleOrdenVenta);
					i++;
				}	
			}
		} else {
			Entidades.OrdenCompra oDatos = (Entidades.OrdenCompra) orden;
			monto = oDatos.getMonto();
		}
		return monto;
	}
	*/
	public float GetMontoOrden(Entidades.Orden orden) throws Exception {
		return orden.getMonto();
	}
	public Entidades.Orden Nuevo(String plz, Entidades.Comitente comitente, String seg, String tasa, List cpds){
		return null;
	}
	/*
	public List buscarOrdenes(Entidades.EstadoOrden estadoOrden) throws Exception{
		String consulta;
		int estado = estadoOrden.getIdEstadoOrden();
		consulta = "SELECT * FROM orden WHERE idEstado=" + estado + ";";
		return Consulta(consulta);
	}
	*/
}
